<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 1.js中的typeof返回哪些数据类型？
        //      返回：number、string、boolean、symbol、null、undefined、function、object

        // 2.split和join的区别？
        //      split用于将一个字符串转换为数组。join用于将一个数组转换成字符串，并且都可以使用分隔符隔开

        // 3.事件委托
        //      事件委托也叫事件代理，事件代理就是把原本需要绑定在子元素的响应事件委托给父元素，让父元素担当事件监听的职务。事件代理的原理是DOM元素的事件冒泡。

        // 4.添加、删除、替换、插入到某个节点的方法？
        //      appendChild()   添加
        //      removeChild()   删除
        //      insertBefore（插入节点，被插节点） 插入
        //      replaceChild（新节点, 旧节点）      替换

        // 5.获取页面所有的checkbox？
        //      var inputs = document.getElementsByTagName("input");//获取所有的input标签对象
        // var checkboxArray = [];
        // for (var i = 0; i < inputs.length; i) {
        //     var obj = inputs[i];
        //     if (obj.type == 'checkbox') {
        //         checkboxArray.push(obj);
        //     }
        // }

        // 6.看下列代码输出为何？解释原因
        //      var foo="11"+2-"1";
        //      console.log(foo);   //数字111
        //      console.log(typeof foo);    //number
        //   原因：字符串加数字返回的是字符串,所以"11"+2="112",字符串类型的数字相减会把两个字符串转换成数字，所以"112"-"1"=112-1,结果就是数字111

        // 7.已知字符串foo="get-element-by-id",写一个函数把它转换成驼峰命名法，结果输出"getElementById"
        // function fn(val) {
        //     var newStr = val.split("-");    //将字符串转换成数组
        //     for (var i = 1; i < newStr.length; i++) {       //i=1：除了数组第一个小写，其他的首字母都大写
        //         // 获取每个单词的首字母并转换成大写，再将字符串拼接到一起，最后把数组转换成字符串返回即可
        //         newStr[i] = newStr[i].slice(0, 1).toUpperCase() + newStr[i].slice(1).toLowerCase();
        //     }
        //     return newStr.join("");
        // }
        // var str=fn("get-element-by-id")
        // console.log(str);   //getElementById

        // 8.请介绍js的splice方法？
        //      主要用于对数组操作，字符串也可以，
        //      splice(n)       从左到右截取数组n个数据，返回值是截取的数据              截取
        //      splice(a,b)     从下标a开始  删除b个数据                               删除
        //      splice(a,0,"str")   把字符串"str"添加到数组的a下标                     添加
        //      splice(a,1,"aaa")   从下标a开始删除一个，并把字符串“aaa”放在a下标上      替换

        // 9.比较attachevent和addeventlistener
        //      attachEvent兼容：IE7、IE8；不兼容firefox、chrome、IE9、IE10、IE11、safari、opera
        //      addEventListener兼容：firefox、chrome、IE、safari、opera；不兼容IE7、IE8
        //      addEventListener添加多个事件会从开始到结束依次执行。attachEvent添加多个事件会从结尾到开头依次执行

        // 10.请用css实现一个圆
        // width:50px;
        // height:50px;
        // border-radius:50%;
    </script>
</body>

</html>